﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BLLUtilidades;

namespace BLLTarasca
{
    public class BLLPerfil:BLLPadre<TarascaDataContext>
    {
        public BLLPerfil(TarascaDataContext contexto) : base(contexto) { }
        public BLLPerfil() : this(new TarascaDataContext()) { }

        public void CrearPerfil(TA_Usuario usuario, string email)
        {
            if (Existe(email))
                throw new BLLTarascaException("Email en uso: " + email);

            TA_Perfil perfil = new TA_Perfil();
            perfil.Email = email;
            perfil.TA_Usuario = usuario;
            Contexto.TA_Perfils.InsertOnSubmit(perfil);
        }

        public bool Existe(string email)
        {
            return Contexto.TA_Perfils.Where(p => p.Email.ToLower().Equals(email.ToLower())).Count() > 0;
        }

        public TA_Perfil Traer(string email)
        {
            return Contexto.TA_Perfils.Where(p => p.Email.ToLower().Equals(email.ToLower())).FirstOrDefault();
        }

        public void ActualizarEmail(string nombreUsuario, string nuevoEmail)
        {
            BLLUsuario bllUsuario = new BLLUsuario(Contexto);
            TA_Usuario usuario = bllUsuario.Traer(nombreUsuario);
            TA_Perfil perfil = usuario.TA_Perfils.FirstOrDefault();

            if (perfil.Email.ToLower() == nuevoEmail.ToLower())
                return;

            if (Existe(nuevoEmail))
                throw new BLLTarascaException("Email no disponible");

            perfil.Email = nuevoEmail;
        }
    }
}
